<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用 class 语法完成 Dog 继承 Pet</title>
</head>
<body>
    <script>
        // 定义一个Pet类
        class Pet {
            #name;
            #age;
            constructor(name, age) {
                this.#name = name;
                this.setAge(age);
            }
            getName() {
                return this.#name;
            }
            getAge() {
                return this.#age;
            }
            // 设置宠物的年龄，如果年龄不在0到30之间，则抛出错误
            setAge(age) {
                if (age >= 0 && age <= 30) {
                    this.#age = age;
                    console.log('设置年龄成功');
                    
                } else {
                    throw new Error('年龄不合法');
                }
            }
        }

        // 定义一个Dog类，继承自Pet类
        class Dog extends Pet {
            #color;
            constructor(name, age, color) {
                super(name, age);
                this.#color = color;
            }
            getColor() {
                return this.#color;
            }
        }

        let dog = new Dog('旺财', 3, '黄色');
        console.log('宠物昵称：', dog.getName()); // 输出：旺财
        console.log('宠物年龄：', dog.getAge()); // 输出：3
        console.log('宠物颜色：', dog.getColor()); // 输出：黄色
        dog.setAge(40); // 抛出错误：年龄不合法
    </script>
</body>
</html>